// pages/scan/scanChina.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    canvasWidth:0,
    canvasHeight:0
  },

  startDetect:function(event){
    let o=event.currentTarget.id
    let that=this //记住在最外层的对象引用
    console.log(o)
    //1.从拍照或相册来选择图片,上传到wx服务器
    wx.chooseImage({
      count:1,//选一张图片
      sizeType:['compressed'], //指定默认压缩
      sourceType:[o], //图片来源 相机或是相册
      success:function (photo) { //上传成功回调函数
        let img_file=photo.tempFilePaths[0] //获取图片的路径
        //1111111111111111111console.log(img_file)
        //2.获取图片的信息
        wx.getImageInfo({
          src:img_file, //指定要获取图片信息的路径
          success:function (res) { //res代表图片信息
            let canvasWidth=res.width
            let canvasHeight=res.height //原始图片的宽高
            console.log('原始图片宽:'+canvasWidth+' 高:'+canvasHeight)
            //3.计算压缩比
            let ratio=2
            while(canvasWidth>400 || canvasHeight>400){
              canvasWidth=Math.trunc(res.width/ratio)
              canvasHeight=Math.trunc(res.height/ratio) //去掉小数
              ratio++
            }
            console.log('压缩比:'+ratio)
            console.log('压缩后的宽:'+canvasWidth+' 高'+canvasHeight)
            that.setData({ //将变量的值绑定到页面中
              canvasWidth,
              canvasHeight
            })
            //4.在canvas画布上绘制压缩的图片
            let ctx=wx.createCanvasContext('canvas') //创建画布的上下文
            ctx.drawImage(res.path,0,0,canvasWidth,canvasHeight) //设置绘制图片的位置和大小
            ctx.draw(false,setTimeout(function () {
              //5.将绘制好的压缩图片生成一个压缩图片文件
              wx.canvasToTempFilePath({
                canvasId:'canvas', //指定要生成文件的画布
                desWidth:canvasWidth,
                desHeight:canvasHeight,//指定生成压缩图片的宽高
                success:function (res) { //把生成的压缩图片上传wx服务器
                  console.log('压缩后图片路径:'+res.tempFilePath)
                  wx.setStorageSync('res_imgurl',res.tempFilePath)


                  //6.获取压缩图片文件的内容并转换为base64编码
                  wx.getFileSystemManager().readFile({
                    filePath:res.tempFilePath,
                    encoding:'base64',//默认是二进制的这里用base64
                    success:function (res_last) { //当成功读取图片
                      //7.生成一个压缩图片的base64编码
                      //1111111111console.log('data:image/jpg;base64,'+res_last.data)
                      //8.发起http请求
                      if(res_last.data){6
                        wx.request({
                          url:'http://192.168.43.164:5000/zhongyao',
                          data:{ //请求参数,要发给服务器端的数据
                            image:res_last.data,
                            baike_num:20
                          },
                          method:'POST',
                          dataType:'text',//服务端返回的是一个纯文本
                          header:{
                            'content-type':'application/x-www-form-urlencoded'
                          },
                          success:function (res) { //请求响应成功回调success函数
                            //拿到识别结果
                            let res_data=res.data
                            console.log(res_data)
                            //把识别结果写入缓存
                            wx.setStorageSync('res_data',res_data)
                            wx.navigateTo({
                                url:'../infoYao/infoYao'
                            })
                          }
                        })
                      }
                    }
                  })
                }
              })
            },3000))
          }
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})